#ifndef FUNCIONES_FAT
#define FUNCIONES_FAT

/**
Devuelve la direccion de inicio de un archivo mediante sus entradas de directorio.
 */
uint32_t obtenerDireccionPrimerCluster(tDirectoryEntry* directoryEntry );

uint32_t obtenerDireccionPrimerClusterDelDirectorioRaiz();

uint32_t obtenerDirPrimerBloqueDeFat();

uint32_t obtenerSiguienteCluster(uint32_t clusterN);

uint32_t obtenerCantidadDeClusterLibres();

uint32_t obtenerCantidadDeClustersUsados();

uint32_t obtenerPrimerSectorDeCluster(uint32_t clusterN);

uint32_t reemplazarValorFat(uint32_t clusterAct,uint32_t clusterSgte);

uint32_t agregarClusterAArchivo(tDirectoryEntry * archivo);

uint32_t removerClusterAArchivo(tDirectoryEntry * archivo);

uint32_t agregarClusterLibre(uint32_t ultimoCluster);

uint32_t obtenerClusterQueApunteA(uint32_t clusterFin, uint32_t primerCluster);

uint32_t obtenerUltimoClusterDelArchivo(tDirectoryEntry * archivo);

uint32_t obtenerClusterLibre();

void agregarPrimerCluster(uint32_t nroCluster ,tDirectoryEntry * entradaDir);

uint32_t obtenerClusterLeerXOffsetArch(uint32_t nroCluster, uint32_t offset);

#endif
